#!/sbin/openrc-run

name="Netflow probe"
description="NetFlow Probe"
command=/usr/sbin/softflowd
pidfile=/run/$RC_SVCNAME.pid

if [ -z "${RC_SVCNAME##*.*}" ]; then
	_suffix=${RC_SVCNAME#*.}
	SOFTFLOWD_INTERFACE=${_suffix%@*}
	name="$name: $SOFTFLOWD_INTERFACE"
	if [ -z "${_suffix##*@*}" ]; then
		SOFTFLOWD_COLLECTOR=${_suffix#*@}
		name="$name -> $SOFTFLOWD_COLLECTOR"
	fi
	command_args="-p $pidfile -c /run/$RC_SVCNAME.ctl"
elif [ "${SOFTFLOWD_INTERFACE##*:*}" ]; then
	SOFTFLOWD_INTERFACE="${SOFTFLOWD_INTERFACE_IDX:+$SOFTFLOWD_INTERFACE_IDX:}$SOFTFLOWD_INTERFACE"
fi

command_args="-i $SOFTFLOWD_INTERFACE -n $SOFTFLOWD_COLLECTOR $command_args $SOFTFLOWD_EXTRA"

# legacy compatibility
command_args="$command_args ${SOFTFLOWD_TIMEOUTS:+-t $SOFTFLOWD_TIMEOUTS}"
command_args="$command_args ${SOFTFLOWD_MAXFLOWS:+-m $SOFTFLOWD_MAXFLOWS}"

depend() {
	need net
}

start_pre() {
	[ "$SOFTFLOWD_INTERFACE" -a "$SOFTFLOWD_COLLECTOR" ] && return 0
	eerror Specify interface name in form [index:]ifname
	eerror and collector host:port in /etc/conf.d/$RC_SVCNAME:
	eerror "    SOFTFLOWD_INTERFACE=eth0"
	eerror "    SOFTFLOWD_COLLECTOR=collector.host:9995"
	eerror Or create an init script for each interface or interface@collector:
	eerror "    cd /etc/init.d"
	eerror "    ln -s softflowd softflowd.1:eth0@collector.host:9995"
	return 1
}
